from Memoria import *
from Buffer import *
from Memoria import *

class Dispositivo:
	def __init__ (self, vel, capac):
		self.__vel = vel
		self.m = Memoria(capac)			#setea una velocidad com string, se la capacidad al dispositivo
		self.b = Buffer()
		self.total = 0
		
		
	def setVel (self, vel):
		self.__vel = vel
		
	def getVel (self):
		return self.__vel
		
	def almacenarMemoria (self, dato):
		if self.total >= self.m.getCapac():					#pregunta si se puede guardar o la capacidad llego a su limite
			print "Imposible guardar. Memoria llena..."		
			
		else:
			self.m.guardar(dato)
			if self.getVel() == "00":									#analiza las velocidades y las imprime
				print "Modo lento. Se ha guardado correctamente..."
			elif self.getVel() == "01":
				print "Modo normal. Se ha guardado correctamente..."
			else:
				print "Modo rapido. Se ha guardado correctamente..."
			self.total = self.total + 1
			
	def levantarMemoria (self):
		if self.m.estado() == 0:
			print "Imposible leer. Memoria vacia..."
				
		else:
			print self.m.leer()
			
	def MemoriaBuffer (self):									#lleva lo que hay en memoria al buffer
		if self.m.estado() == 0:
			print "Imposible pasar datos. Memoria vacia..."
		else:
			self.b.almacenarBuffer(self.m.leer())
			self.m.liberarMemoria()
		
	def bufferMemoria (self):									#lleva lo que hay en el buffer a la memoria
		if self.b.estado() == 0:
			print "Imposible pasar datos. Buffer vacio..."
		else:
			self.m.guardar(self.b.leerBuffer())	
			self.b.liberarBuffer()

				
